Estoy en Android Studio 4.2.2. Creé un nuevo proyecto y no he agregado nada al código de inicio y cada vez que hago clic en compilar o ejecutar , aparece este error:
La revisión 31.0.0 de Build Tools instalada está dañada. Elimine e instale nuevamente usando SDK Manager.
He mirado las sugerencias de otras publicaciones, pero ninguna de esas soluciones funcionó. Esto es lo que he intentado:
rm -rf /path/to/android/sdk/build-tools/31.0.0 (no termina en "-rc" como lo han descrito otras publicaciones)Soy un novato de Android que solo intenta configurar un proyecto de hola mundo, y realmente no debería ser tan difícil.
Desinstalé e instalé el paquete 31.0.0 y aún mostraba el error.
Utilicé las herramientas de compilación RC2 y se compiló y funcionó bien sin cambiar a la versión 30 del SDK.
En el archivo app/build.gradle :
buildToolsVersion "31.0.0-rc2"Es un problema de conflicto con Android Studio y SDK 31.
Convierte tu archivo build.gradle así:
android { compileSdkVersion 30 buildToolsVersion "30.0.3" defaultConfig { applicationId "com.example.app" minSdkVersion 21 targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } }Para aquellos que usan Azure DevOps y necesitan que las cosas funcionen con 30.0.3, deben desinstalar la versión 31.0.0
Agregué esto a mi tubería para que mis compilaciones funcionen nuevamente.
- bash: | $ANDROID_SDK_ROOT/tools/bin/sdkmanager --uninstall 'build-tools;31.0.0'La variable de entorno $ANDROID_SDK_ROOT está en las variables preestablecidas
En el archivo build.gradle (Módulo: HelloWorld.app):
Cambie la configuración anterior a esto:
El objetivo no es degradar el nivel de API objetivo, sino construir exactamente para el nivel de API 31 para preparar y probar una aplicación para Android 12.
Parece que DX se eliminó de SDK a favor de D8.
Parece que el complemento Android Gradle 4.x no lo sabe.
Por el momento solo veo dos soluciones:
Todavía no tengo suficiente reputación para comentar, pero existe la solución con enlaces simbólicos para Windows, y me gustaría agregar que también funciona para macOS.
Ese es el comando para la terminal de Mac:
ln %ANDROID_HOME%/sdk/build-tools/31.0.0/d8 %ANDROID_HOME%/sdk/build-tools/31.0.0/dx && ln %ANDROID_HOME%/sdk/build-tools/31.0.0/lib/d8.jar %ANDROID_HOME%/sdk/build-tools/31.0.0/lib/dx.jarLa solución para Mac es bastante similar a la de Windows, pero no del todo concluyente al leer la solución de Windows. Las rutas y los nombres de los archivos son diferentes, pero el problema es básicamente el mismo.
cd /Users/admin/Library/Android/sdk/build-tools/cd 31.0.0cp d8 dxcd libcp d8.jar dx.jarEsto solucionó mis problemas en macOS v10.13.6 (High Sierra).
Hay tantas respuestas incorrectas y engañosas aquí.
Lo único que realmente debe hacer es instalar la última versión Beta de Android Studio si está utilizando Beta SDK. Con la última versión de Android Studio Beta viene la compatibilidad con la última versión de AGP, que es compatible correctamente con SDK 31.
Después de cambiar esta configuración, parece funcionar bien. Descargué SDK versión 30 de SDK Manager .
android { compileSdkVersion 30 buildToolsVersion "30.0.3" defaultConfig { applicationId "com.anurag.myapplication" minSdkVersion 23 targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }Si observa cuidadosamente los registros, verá:
A Build-tool 31.0.0 le falta DX en ruta a SDK\build-tools\31.0.0\dx.bat
Puede intentar copiarlo de versiones anteriores, pero eso no funcionará bien si tiene que decirle a todo su equipo que haga lo mismo y aún falla en la canalización de su servidor. Esto también me sucedió en la versión 31.0.0-rc5.
Se encontró el mismo problema y se resolvió con algunos cambios de línea.
Verifique el panel de código del proyecto y vaya a Gradle Scripts → archivo build.gradle ,
Ahora ejecuta la aplicación. Esto funciona para mi.
Desmarqué 31 en SDK Manager, hice clic en Android 11.0(R) para volver a 30 y actualicé Build Gradle (proyecto) para cambiar compileSdkVersion y targetSdkVersion de 31 a 30.
También tuve que actualizar buildToolsVersion a "30.0.2" en lugar de 30. Ahora funciona.
Presione Ctrl+Alt+Shift+S para abrir la estructura del proyecto. El módulo de selección de la izquierda.
Abra la pestaña Propiedades y cambie lo siguiente:
Versión SDK compilada: 30
Versión de herramientas de compilación: 30.0.2
Después de eso, abra la pestaña Configuración predeterminada y cambie:
Versión SDK de destino: 30
En primer lugar, muchachos, si enfrentan este tipo de problemas, pueden probar la solución donde necesitamos cambiar 31 a 30. Y después de eso, se requieren algunos pasos importantes: Paso:
Después de eso, su tarea no es, en algunos casos aún, puede ver que esta configuración no se acepta, también debe realizar estos pasos:
Vaya al área superior derecha y haga clic en el ícono SDK Manager.
Seleccione Android SDK> imagen 1 donde debe marcar todas las versiones de Android que necesita *
Después de marcar, haga clic en Aceptar y luego instale.
SDK de Android> Herramienta SDK> lado derecho abajo> mostrar Detalles del paquete> marque la opción 30.0.2 y luego instálelo. imagen 2 > seleccione 30.0.2
5) Ahora hecho, haga clic en Aceptar instalar> aplique su listo para usar.
La versión 31.0.0 en sí está corrupta y debemos cambiar a la versión 30.
Pasos que seguí para lo mismo:
Abra la estructura del proyecto → presione Ctrl + Alt + Shift + S
Vaya a Módulo → propiedades → *Versión de SDK compilado: 30 Versión de herramientas de compilación: 30.0.2
Vaya a Configuración predeterminada → Versión SDK de destino: 30
Aplicar y cerrar .
Menú Herramientas → Administrador de SDK
Desmarque API 31 para desinstalar y marque Android 11.0(R) para instalar (30.0.3) en mi caso.
Aplicar
En primer lugar, me enfrenté a este problema en Android Studio 4.2.2 y no es necesario degradar la herramienta de compilación de SDK de 31 a 30 ni cambiar la versión de compilación de SDK.
El principal problema son los dos archivos que faltan en la herramienta de compilación SDK 31 que son:
La solución es que estos archivos se llamen d8 en la ubicación del archivo, por lo que cambiar su nombre a dx resolverá el error.
Los pasos están a continuación.
ir a la ubicación
"C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0"busque un archivo llamado d8.bat. Este es un archivo por lotes de Windows.
cambie el nombre de d8.bat a dx.bat.
en la carpeta lib ("C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0\lib")
cambiar el nombre de d8.jar a dx.jar
Recuerde que AppData es una carpeta oculta. Active los elementos ocultos para ver la carpeta AppData.
# change below to your Android SDK path cd ~/Library/Android/sdk/build-tools/31.0.0 \ && mv d8 dx \ && cd lib \ && mv d8.jar dx.jarAhora ejecute su proyecto.
Intente reinstalar el SDK 31 nuevamente y reinicie Android Studio, debería funcionar. De lo contrario, desde SDK Manager, instale el SDK 30 en el sistema y configure el archivo Gradle de compilación de la aplicación como
compileSdkVersion 30 buildToolsVersion "30.0.0" defaultConfig { targetSdkVersion 30 } Navigate to: Configure -> SDK Manager -> SDK Tools [tab] -> Show Package Details [check box] click on Android SDK Build-Tools 31 uncheck 31.0.0 and Hit OKPara solucionar el problema, primero vaya a la siguiente ubicación:
C:\Usuarios\Usuario\AppData\Local\Android\Sdk\build-tools\31.0.0
Luego busque el archivo d8 (archivo por lotes de Windows) y cámbiele el nombre a dx.
Luego ve a:
C:\Usuarios\Usuario\AppData\Local\Android\Sdk\build-tools\31.0.0\lib
Luego busque el archivo d8 (archivo jar ejecutable) y cambie el nombre a dx.
Su problema se resolverá ahora.
Intenté desinstalar la herramienta 31 del administrador SDK. Lo hizo con éxito, pero al construir un proyecto, se reinstalará y sucederá el mismo problema.
Luego probé la sugerencia de cambiar el nombre de d8 a dx. Y comienza a ejecutar un montón de tareas y hace que toda la computadora se cuelgue. Entendiendo como el proyecto es solo una simple actividad. No estoy seguro de por qué Gradle necesita conectarse constantemente a Internet y ocupar tanto del uso de la CPU.
Después de un reinicio completo y fsck más tarde, el proyecto se construye bien.
Primero seguí la respuesta del usuario 16475264 , pero el verdadero problema (al menos en mi caso) resultó ser la versión de AGP (Android Gradle Plugin). Entonces, después de actualizar a v7, revertí mis cambios tanto para el ejecutable como para el archivo JAR: dx -> d8 en ~/Library/Android/sdk/build-tools/31.0.0 . esto funcionó
Mi Android Studio Arctic Fox 2020.3.1 Patch 2
con
descargó Android 12 and Android SDK Build-Tools 31 in Android SDK
trabajando con buildToolsVersion "31.0.0"
build.gradle (Proyecto)
buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:7.0.2" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.30" } } task clean(type: Delete) { delete rootProject.buildDir }build.gradle (Módulo)
plugins { id 'com.android.application' id 'kotlin-android' } android { compileSdk 31 buildToolsVersion "31.0.0" defaultConfig { applicationId "com.example.android12" minSdk 21 targetSdk 31 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } } dependencies { implementation 'androidx.core:core-ktx:1.6.0' implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.0' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' }gradle-wrapper.propiedades
#Fri Sep 10 13:52:36 ICT 2021 distributionBase=GRADLE_USER_HOME distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOMEDescargué el archivo dx.bat de https://android.googlesource.com/platform/dalvik/+/master/dx/etc/dx.bat .
Lo puse en \build-tools\31.0.0 y luego descargué el archivo dx.jar (que también faltaba, por el mensaje de error que recibí) de http://www.java2s.com/Code/Jar/d/ Descargar dxjar.htm .
Lo puse en el directorio \build-tools\31.0.0\lib .
Entonces funcionó.
Verifique su compilación de Gradle:
android { compileSdkVersion 30 buildToolsVersion "31.0.0" // Solution 1: // Downgrade it to 30.0.3 defaultConfig { applicationId "com.mobiz.lottotemplate440" minSdkVersion 21 targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }O,
Descargue SDK 31 desde el administrador de SDK.
Existen varias soluciones para este problema, aunque una que lógicamente debería solucionarlo no funciona, es decir, desinstalar la versión 31.0.0 de la herramienta de compilación y volver a instalarla. Esta solución no funciona y el equipo de Android Studio probablemente deba investigarla.
Actualmente, lo que parece funcionar es: Solución 1 (Versión de la herramienta de compilación de versión anterior que se usa en el proyecto)
Verifique el panel de código del proyecto y vaya a Gradle Scripts -> archivo build.gradle,
Cambie 3 lugares: compileSdkVersion, buildToolsVersion, targetSdkVersion de 31 a 30 Notará que se enciende una bombilla en las líneas modificadas, haga clic y elija sincronizar [a la versión 30]. Android Studio descargará automáticamente BuildTool V30 y cambiará la configuración del proyecto.
Solución 2 (Obtenga los archivos dx.bat y dx.jar faltantes de las herramientas de compilación de la versión anterior) A Build-tool 31.0.0 le falta DX en ruta a sdk\build-tools\31.0.0\dx.bat y Build-tool 31.0.0 falta DX en ruta-a-sdk\build-tools\31.0.0\lib\dx.jar
Puede intentar copiarlo de las herramientas de compilación de la versión anterior. Lo hice desde la versión 30.0.3 y funcionó para mí.
Actualizar gradle a 7.0.2 podría ayudar
vaya a configuración de estudio de Android-> SDK de Android-> herramientas de SDK-> en la lista, marque la licencia de Google Play y aplique. te descargará un archivo y luego sincronizará tu proyecto y listo.
En el archivo build.gradle (Módulo). Cambie los siguientes ajustes.
android { compileSdkVersion 30 buildToolsVersion "30.0.0" defaultConfig { applicationId "com.recycleview.mvvm" minSdkVersion 16 targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }Cambie su compilación de Gradle de:
android { compileSdkVersion 31 buildToolsVersion '31.0.0' defaultConfig { applicationId "com.example.eg" minSdkVersion 23 targetSdkVersion 31 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }para:
android { compileSdk 31 defaultConfig { applicationId "com.example.eg" minSdk 23 targetSdk 31 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }esto funcionará